home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / codeco1a / connect.cls < prev    next >
Text File  |  1999-06-19  |  5KB  |  162 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4. END
  5. Attribute VB_Name = "Connect"
  6. Attribute VB_GlobalNameSpace = False
  7. Attribute VB_Creatable = True
  8. Attribute VB_PredeclaredId = False
  9. Attribute VB_Exposed = True
  10. Attribute VB_Description = "My Add-In"
  11. ' Code for Connect Class-Module (mostly the standart-code except for the Sub
  12. ' Show and for IDTExtensibility_OnConnection
  13. ' By J.M.Goebel
  14. ' This Code is Freeware if you use this code to develop new Application
  15. ' it may only be distributed as Freeware!
  16.  
  17.  
  18. Option Explicit
  19.  
  20. Implements IDTExtensibility
  21.  
  22. Public FormDisplayed          As Boolean
  23. Public VBInstance             As VBIDE.VBE
  24. Dim mcbMenuCommandBar         As Office.CommandBarControl
  25. Dim mfrmAddIn                 As New frmAddIn
  26. Public WithEvents MenuHandler As CommandBarEvents   ' Ereignisbehandlungsroutine
  27. Attribute MenuHandler.VB_VarHelpID = -1
  28.                                                     ' fⁿr die Befehlsleiste
  29.  
  30.  
  31. Sub Hide()
  32.     
  33.     On Error Resume Next
  34.     
  35.     FormDisplayed = False
  36.     mfrmAddIn.Hide
  37.    
  38. End Sub
  39.  
  40. Sub Show()
  41.   
  42.     On Error Resume Next
  43.     
  44.     If mfrmAddIn Is Nothing Then
  45.         Set mfrmAddIn = New frmAddIn
  46.     End If
  47.     
  48.     Set mfrmAddIn.VBInstance = VBInstance
  49.     Set mfrmAddIn.Connect = Me
  50.     FormDisplayed = True
  51.     mfrmAddIn.Show
  52.     mfrmAddIn.LoadComponents
  53. End Sub
  54.  
  55. '------------------------------------------------------
  56. ' Diese Methode fⁿgt das Add-In in VB ein.
  57. '------------------------------------------------------
  58. Private Sub IDTExtensibility_OnConnection(ByVal VBInst As Object, ByVal ConnectMode As vbext_ConnectMode, ByVal AddInInst As VBIDE.AddIn, custom() As Variant)
  59.     
  60.     On Error GoTo error_handler
  61.     
  62.     ' Speichern der VB-Instanz.
  63.     Set VBInstance = VBInst
  64.     
  65.     ' Dieser Stelle eignet sich gut fⁿr einen Haltepunkt,
  66.     ' um verschiedene AddIn-Objekte, -Eigenschaften und
  67.     ' -Methoden zu testen.
  68.     Debug.Print VBInst.FullName
  69.  
  70.     If ConnectMode = vbext_cm_External Then
  71.         ' Wird von der Assistenten-Symbolleiste zum
  72.         ' Starten dieses Assistenten verwendet.
  73.         Me.Show
  74.     Else
  75.         Set mcbMenuCommandBar = AddToAddInCommandBar("Code Completer")
  76.         ' ▄bergeben des Ereignisses an die Behandlungsroutine.
  77.         Set Me.MenuHandler = VBInst.Events.CommandBarEvents(mcbMenuCommandBar)
  78.     End If
  79.   
  80.     If ConnectMode = vbext_cm_AfterStartup Then
  81.         If GetSetting(App.Title, "Settings", "DisplayOnConnect", "0") = "1" Then
  82.             ' Anzeigen des Formulars beim Verbinden.
  83.             Me.Show
  84.         End If
  85.     End If
  86.   
  87.     Exit Sub
  88.     
  89. error_handler:
  90.     
  91.     MsgBox Err.Description
  92.     
  93. End Sub
  94.  
  95. '------------------------------------------------------
  96. ' Diese Methode entfernt das Add-In aus VB.
  97. '------------------------------------------------------
  98. Private Sub IDTExtensibility_OnDisconnection(ByVal RemoveMode As vbext_DisconnectMode, custom() As Variant)
  99.     
  100.     On Error Resume Next
  101.     
  102.     ' L÷schen des Befehlsleisteneintrags.
  103.     mcbMenuCommandBar.Delete
  104.     
  105.     ' Beenden des Add-Ins.
  106.     If FormDisplayed Then
  107.         SaveSetting App.Title, "Settings", "DisplayOnConnect", "1"
  108.         FormDisplayed = False
  109.     Else
  110.         SaveSetting App.Title, "Settings", "DisplayOnConnect", "0"
  111.     End If
  112.     
  113.     Unload mfrmAddIn
  114.     Set mfrmAddIn = Nothing
  115.  
  116. End Sub
  117.  
  118. Private Sub IDTExtensibility_OnStartupComplete(custom() As Variant)
  119.     If GetSetting(App.Title, "Settings", "DisplayOnConnect", "0") = "1" Then
  120.         ' Anzeigen des Formulars beim Verbinden.
  121.         Me.Show
  122.     End If
  123. End Sub
  124.  
  125. Private Sub IDTExtensibility_OnAddInsUpdate(custom() As Variant)
  126. '
  127. End Sub
  128.  
  129. ' Dieses Ereignis wird ausgel÷st, wenn auf das Menⁿ in der
  130. ' IDE (Intgrierte Entwicklungsumgebung) geklickt wird.
  131. Private Sub MenuHandler_Click(ByVal CommandBarControl As Object, handled As Boolean, CancelDefault As Boolean)
  132.     Me.Show
  133. End Sub
  134.  
  135. Function AddToAddInCommandBar(sCaption As String) As Office.CommandBarControl
  136.     Dim cbMenuCommandBar As Office.CommandBarControl  ' Befehlsleistenobjekt
  137.     Dim cbMenu As Object
  138.   
  139.     On Error GoTo AddToAddInCommandBarErr
  140.     
  141.     ' Suchen des Menⁿs "Add-Ins".
  142.     Set cbMenu = VBInstance.CommandBars("Add-Ins")
  143.     If cbMenu Is Nothing Then
  144.         ' Nicht verfⁿgbar. Fehler.
  145.         Exit Function
  146.     End If
  147.     
  148.     ' Hinzufⁿgen zur Befehlsleiste.
  149.     Set cbMenuCommandBar = cbMenu.Controls.Add(1)
  150.     ' Festlegen der Beschriftung.
  151.     cbMenuCommandBar.Caption = sCaption
  152.     
  153.     Set AddToAddInCommandBar = cbMenuCommandBar
  154.     
  155.     Exit Function
  156.     
  157. AddToAddInCommandBarErr:
  158.  
  159. End Function
  160.  
  161.  
  162.